package org.example.actualcombat.demos.web.modules.pms.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.example.actualcombat.demos.web.modules.pms.mapper.PmsProductAttributeCategoryMapper;
import org.example.actualcombat.demos.web.modules.pms.model.PmsProductAttributeCategory;
import org.example.actualcombat.demos.web.modules.pms.model.PmsProductAttributeModel;
import org.example.actualcombat.demos.web.modules.pms.model.dto.ProductAttributeCategoryDTO;
import org.example.actualcombat.demos.web.modules.pms.service.PmsProductAttributeCategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

@Service
public class PmsProductAttributeCategoryServiceImpl extends ServiceImpl<PmsProductAttributeCategoryMapper, PmsProductAttributeCategory> implements PmsProductAttributeCategoryService {
    @Autowired
    PmsProductAttributeCategoryMapper PmsProductAttributeCategoryMapper;
    @Override
    public Page list( Integer pageNum, Integer pageSize) {
        Page page = new Page<>(pageNum,pageSize); // mp的分页
        return this.page(page); // 调用IServiceImpl的基类方法
    }
    @Override
    public  boolean add(String name){
        PmsProductAttributeCategory category = new PmsProductAttributeCategory();
        category.setName(name);
        category.setParamCount(0);
        category.setAttributeCount(0);
        return this.save(category);
    }


    @Override
    public boolean deleteVal(Long id){
       return this.removeById(id);
    }



    @Override
    public boolean updateByIdFn(int id, String name) {
        UpdateWrapper<PmsProductAttributeCategory> updateWrapper = new UpdateWrapper<>();
        updateWrapper.lambda().eq(PmsProductAttributeCategory::getId,id).set(name!=null,PmsProductAttributeCategory::getName,name);
        boolean update = this.update(updateWrapper);
        return update;
    }

    @Override
    public List<ProductAttributeCategoryDTO> getListWithAttr() {
//        得用xml， 先查下咋样。 再写， 最后对比
        System.out.println(PmsProductAttributeCategoryMapper);
        List<ProductAttributeCategoryDTO> listWithAttr = PmsProductAttributeCategoryMapper.getListCategoryWithAttr();
        System.out.println(listWithAttr);
        return listWithAttr;

//        ProductAttributeCategoryDTO dto = new ProductAttributeCategoryDTO();
//        ArrayList<ProductAttributeCategoryDTO> arrayList = new ArrayList<>();
//        arrayList.add(dto);
//        return arrayList;

    }
}


















